package LeeJS;

public class J15_OOP1 {
	
	/*
	
	객체지향 개발 기법
	OOP : 객체를 기반으로 프로그램을 작성하는 것
	OOP 언어로 응용 프로그램을 개발하는 경우, 
	문제 해결을 위해 실제 상황과 유사한 모델을 만들어야 함
	
	예를 들어, 직원 세금을 계산하는 프로그램 작성
	프로그램에서 회사를 표현하는 회사객체가 필요
	또한, 직원을 나타내는 직원 객체, 세금을 나타내는 세금 객체도 필요
	회사, 직원, 세금 객채를 자바 프로그램에서 코드로 나타내는 방법에 대해 알아봄
	
	모든 객체에는 2가지 성질이 있음
	[속성 property], 객체가 할수 있는 [행동 action]
	현실세계의 존재하는 객체를 자바언어로 가져오는 경우에도 속성하고 행위를 가지고 있어야함
	자바에서 속성은 fiele, 행위는 method 라고 함
	단, 필드와 메서드는 선택사항(생략가능)임
	
	자바 객체를 만드는 방법은? - 설계도를 이용
	'차'라는 객체를 잘 만들려면 좋은 차로 만들어주는 설계도를 참고
	OOP에서 객체를 만들어 주는 설계도를[클래스]라 함
	청사진/ 설계도 또는 템플릿임(중요)
	붕어빵 - 객체
	붕어빵 틀 - 클래스
	밀가루, 팥 - 속성
	클래스는 당신이 만들려는 객체의 종류를 결정함
	요약하자면, 클래스는 프로그래머로 하여금 문제의 추상화를 만들 수 있게 해주는 OOP 도구임
	OOP에서 추상화 abstraction 는 실체 객체에서 핵심적인 
	개념 또는 기능을 뽑아 프로그래밍 객체로 만드는 행위를 말함
	
	클래스는 자바 프로그램의 기본 뼈대
	자바 초보자는 클래스를 작성할 떄
	클래스이름, 필드, 메서드 등을 고려할 것
	클래스 만들기
	class 클래스 이름 {
			클래스 몸체 (필드,메서드)
	 		}
	클래스이름은 반드시 대문자로 시작
	클래스 정의시 클래스 이름과 파일 이름은 동일 해야함
	클래스 내에 선언된 변수를 필드(fiele) 라고 함
	
	*/
	
	
	public static void main(String[] args){
		
		//클래스를 사용하지 않고 학생관리
		
		student one = new student();
		System.out.println(one.name);
		
		student two = new student();
		System.out.println(one.name);
		
		/*
		String name = "이준상";
		int stdno = 123456789;
		String addr = "경기도 화성시 진안동";
		int mp = 12345678;
		
		String name1 = "전제복 바보";
		int stdno1 = 12356789;
		String addr1 = "강원도 강릉시 남문동";
		int mp1 = 1235678;
		
		//클래스를 사용하여 학생관리
		
		student wpqhr = new student();
		wpqhr.name = "준상";
		wpqhr.stdno = 12345678;
		wpqhr.addr = "경기도 화성시 진안동";
		wpqhr.mp = 68468;
		
		student dlddu = new student();
		wpqhr.name = "제복";
		wpqhr.stdno = 4863434;
		wpqhr.addr = "강원도 강릉시 남문동";
		wpqhr.mp = 3434848;*/
		
		
		
		}
	}


class student {
	String name;
	int stdno;
	String addr;
	int mp;
	
	public student(){
		
		name = "전제복 멍충이";
		stdno = 1234;
		addr = "강원도 멍충시 바보동";
		mp = 3454;
		
	}

}

//고객 (Customer)클래스
//아이디, 비밀번호, 이름 , 주소, 전화번호, 이메일
class Customer {
	String id;
	String pass;
	String name;
	String addr;
	String mp;
	String email;
}

//상품 (Product) 클래스
//상품명 , 가격, 종류, 제조사 , 상품번호
class Product {
	String name;
	int price;
	String type;
	String maker;
	int number;
	
}
